<html>
<head><meta charset="utf-8"><title>why stage 2? · t-compiler/help · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/index.html">t-compiler/help</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html">why stage 2?</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="198962285"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/198962285" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#198962285">(May 27 2020 at 22:35)</a>:</h4>
<p>Honest question: why do we have stage 2 of bootstrapping? Why not just build the compiler once with the beta and be done with it?</p>



<a name="198997730"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/198997730" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#198997730">(May 28 2020 at 09:00)</a>:</h4>
<p>stage two has been useful for me with the polymorphisation work - it acted like a whole other test suite, catching a ton of cases that running every test with stage one didn't. There are probably better reasons than that, but there's one reason.</p>



<a name="198998771"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/198998771" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#198998771">(May 28 2020 at 09:12)</a>:</h4>
<p>Stage 1 also does not use any compiler optimizations added since the last beta, so stage 2 is faster than stage 1 in some cases.</p>



<a name="199016053"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199016053" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199016053">(May 28 2020 at 12:38)</a>:</h4>
<p>When doing local development, it doesn't matter -- well, beyond what <span class="user-mention" data-user-id="116107">@davidtwco</span> mentions -- but in CI we want to build the compiler twice so that we can ship rustc-dev and let people like clippy or miri developers use a nightly toolchain and link against the compiler libraries</p>



<a name="199016117"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199016117" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199016117">(May 28 2020 at 12:39)</a>:</h4>
<p>w/o stage 2 builds if you wanted to link against the compiler you'd have to build it yourself, as the stage 1 compiler is not ABI compatible with libraries it produces, so you can't link against it</p>



<a name="199092106"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199092106" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199092106">(May 28 2020 at 22:04)</a>:</h4>
<p>Ah, I see</p>



<a name="199092414"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199092414" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199092414">(May 28 2020 at 22:08)</a>:</h4>
<p>I've been thinking about this a bit in the context of simplifying contributor setup costs. With infinite time and energy, it seems like it would be possible to eventually get to a place where a new contributor just does <code>rustup install beta</code> then <code>cargo +beta build</code> to build to build the compiler. Likewise, maybe libstd, clippy, miri could be made to use pre-compiled artifacts so that those contributors don't have to build the compiler at all...</p>



<a name="199092461"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199092461" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199092461">(May 28 2020 at 22:08)</a>:</h4>
<p>Does that seem like a practical future outcome at all? Or are there fundamental blockers to achieving such a thing?</p>



<a name="199093479"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199093479" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199093479">(May 28 2020 at 22:21)</a>:</h4>
<p>the first step to getting that to work is to decouple the compiler from std -- i.e., the compiler stops using std unstable features</p>



<a name="199093546"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199093546" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199093546">(May 28 2020 at 22:22)</a>:</h4>
<p>alternatively, you need built-in-to cargo support for building std (e.g. -Zbuild-std)</p>



<a name="199093608"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199093608" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199093608">(May 28 2020 at 22:23)</a>:</h4>
<p>hmm... why? doesn't it only mean the compiler has to wait 6 weeks before using unstable features?</p>



<a name="199093625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199093625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199093625">(May 28 2020 at 22:23)</a>:</h4>
<p>I guess we would just need a notion of "unstable on beta"</p>



<a name="199093638"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199093638" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199093638">(May 28 2020 at 22:23)</a>:</h4>
<p>or am I missing something?</p>



<a name="199093737"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199093737" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199093737">(May 28 2020 at 22:24)</a>:</h4>
<p>yeah, it does</p>



<a name="199093760"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199093760" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199093760">(May 28 2020 at 22:24)</a>:</h4>
<p>so today we build std and then link against it when building the compiler</p>



<a name="199093781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199093781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199093781">(May 28 2020 at 22:25)</a>:</h4>
<p>cargo has no fully 100% working support for doing this though, so we run cargo twice</p>



<a name="199093801"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199093801" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199093801">(May 28 2020 at 22:25)</a>:</h4>
<p>I'm hopeful that -Zbuild-std will eventually get to the point that we can use that, though</p>



<a name="199093875"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199093875" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199093875">(May 28 2020 at 22:26)</a>:</h4>
<p>I think a far more likely short-term goal is that we can get something like this to work, which would install the master (or most recent bors commit) for you</p>
<div class="codehilite"><pre><span></span><code>./prepare-toolchain.sh
cargo +rustc-master build -p rustc
</code></pre></div>



<a name="199093891"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199093891" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199093891">(May 28 2020 at 22:26)</a>:</h4>
<p>that should basically just work today</p>



<a name="199093936"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199093936" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199093936">(May 28 2020 at 22:26)</a>:</h4>
<p>Another question: why not just use _yesterday's_ nightly?</p>



<a name="199093960"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199093960" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199093960">(May 28 2020 at 22:27)</a>:</h4>
<p>though, I guess people would need to keep updating their nightly...</p>



<a name="199094030"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094030" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094030">(May 28 2020 at 22:27)</a>:</h4>
<p>or is that what you just suggested?</p>



<a name="199094083"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094083" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094083">(May 28 2020 at 22:28)</a>:</h4>
<p>nightly won't necessarily work</p>



<a name="199094091"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094091" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094091">(May 28 2020 at 22:28)</a>:</h4>
<p>but "master" always will</p>



<a name="199094124"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094124" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094124">(May 28 2020 at 22:28)</a>:</h4>
<p>(note that every day those two diverge until they resync)</p>



<a name="199094238"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094238" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094238">(May 28 2020 at 22:30)</a>:</h4>
<p>well, it won't always work under the current system, but suppose we said that you need to wait 1 week to use new features on nightly... then we could have a <code>dev</code> channel that you only need to sync every week, and any master commit can be built by that week's <code>dev</code> compiler</p>



<a name="199094293"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094293" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094293">(May 28 2020 at 22:30)</a>:</h4>
<p>or put more generally:</p>



<a name="199094304"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094304" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094304">(May 28 2020 at 22:31)</a>:</h4>
<p>note that it's not just about unstable features</p>



<a name="199094311"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094311" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094311">(May 28 2020 at 22:31)</a>:</h4>
<p>you also have things like lang items</p>



<a name="199094327"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094327" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094327">(May 28 2020 at 22:31)</a>:</h4>
<p>if you don't guarantee master, you need basically cfg(bootstrap) and cfg(some_recent_nightly)</p>



<a name="199094333"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094333" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094333">(May 28 2020 at 22:31)</a>:</h4>
<p>which is a bit annoying</p>



<a name="199094396"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094396" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094396">(May 28 2020 at 22:32)</a>:</h4>
<p>some_recent_nightly, notably, needs to go <em>into the compiler</em> which we've so far avoided for cfg(bootstrap)</p>



<a name="199094411"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094411" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094411">(May 28 2020 at 22:32)</a>:</h4>
<p>we would make a distribution not ABI compatible with itself</p>



<a name="199094441"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094441" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094441">(May 28 2020 at 22:32)</a>:</h4>
<p>I don't see how that helps anything</p>



<a name="199094442"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094442" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094442">(May 28 2020 at 22:32)</a>:</h4>
<p>hmm, i need to chew on that</p>



<a name="199094455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094455">(May 28 2020 at 22:32)</a>:</h4>
<p>to be clear, I think there are ergonomic wins to be had at low cost today</p>



<a name="199094468"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094468" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094468">(May 28 2020 at 22:33)</a>:</h4>
<p>there's just need for some design bandwidth to eke out the best UI and such for it</p>



<a name="199094480"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094480" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094480">(May 28 2020 at 22:33)</a>:</h4>
<p>hmm, yeah, I'm conflating stage-2 with the bootstrap compiler</p>



<a name="199094575"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094575" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094575">(May 28 2020 at 22:34)</a>:</h4>
<p>could you elaborate a bit more regarding lang item? could you give an example?</p>



<a name="199094648"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094648" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094648">(May 28 2020 at 22:35)</a>:</h4>
<p>so today when you add a lang item to std, the compiler can always assume it exists</p>



<a name="199094669"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094669" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094669">(May 28 2020 at 22:35)</a>:</h4>
<p>but if you're not building with the std in tree, that's no longer true</p>



<a name="199094775"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094775" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094775">(May 28 2020 at 22:36)</a>:</h4>
<p>when you say "the compiler" do you mean the one we are compiling with or the one we are compiling?</p>



<a name="199094858"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094858" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094858">(May 28 2020 at 22:37)</a>:</h4>
<p>ah well, okay, so actually I guess you're going to end up building std anyway to use it</p>



<a name="199094862"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094862" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094862">(May 28 2020 at 22:37)</a>:</h4>
<p>so that's not a concern too much</p>



<a name="199094917"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094917" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094917">(May 28 2020 at 22:38)</a>:</h4>
<p>(i.e., you'd need to run something like <code>cargo build -p rustc &amp;&amp; cargo +stage1 build -p std</code>)</p>



<a name="199094987"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199094987" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199094987">(May 28 2020 at 22:39)</a>:</h4>
<p>ah, i see... that seems unfortunate</p>



<a name="199095033"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095033" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095033">(May 28 2020 at 22:40)</a>:</h4>
<p>it would be nice to reach an end state where you only need to build what you're working on</p>



<a name="199095060"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095060" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095060">(May 28 2020 at 22:40)</a>:</h4>
<p>i.e. if you are working on the compiler, you don't need to build std; if you are working on std, you don't need to build the compiler</p>



<a name="199095072"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095072" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095072">(May 28 2020 at 22:40)</a>:</h4>
<p>well I mean you don't <em>need to</em> build std</p>



<a name="199095079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095079">(May 28 2020 at 22:41)</a>:</h4>
<p>but then you can't compile anything with that compiler</p>



<a name="199095090"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095090" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095090">(May 28 2020 at 22:41)</a>:</h4>
<p>right</p>



<a name="199095097"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095097" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095097">(May 28 2020 at 22:41)</a>:</h4>
<p>including running most of the tests</p>



<a name="199095104"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095104" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095104">(May 28 2020 at 22:41)</a>:</h4>
<p>for the new compiler</p>



<a name="199095110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095110">(May 28 2020 at 22:41)</a>:</h4>
<p>sure, yes, 99.9% of the tests are not no_core</p>



<a name="199095131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095131">(May 28 2020 at 22:41)</a>:</h4>
<p>to bypass this you basically need at least some level of ABI stability</p>



<a name="199095143"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095143" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095143">(May 28 2020 at 22:41)</a>:</h4>
<p>though, it might not be that bad... build std only takes ~30 seconds on my laptop</p>



<a name="199095195"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095195" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095195">(May 28 2020 at 22:42)</a>:</h4>
<p>right yes the ergonomic hit is way worse than the actual build time</p>



<a name="199095226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095226">(May 28 2020 at 22:42)</a>:</h4>
<p>I will note though that <em>technically</em> there's nothing stopping us from pseudo-building std for you</p>



<a name="199095245"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095245" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095245">(May 28 2020 at 22:42)</a>:</h4>
<p>e.g. you run something like <code>cargo run -p rustc-std</code></p>



<a name="199095266"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095266" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095266">(May 28 2020 at 22:42)</a>:</h4>
<p>and that's the equivalent of <code>x.py build --stage 1 src/libtest</code> today, basically</p>



<a name="199095312"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095312" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095312">(May 28 2020 at 22:43)</a>:</h4>
<p>obviously it's not as nice because run != build and you need to emulate check and such atop that somehow</p>



<a name="199095316"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095316" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095316">(May 28 2020 at 22:43)</a>:</h4>
<p>Ideally in the long term, the tests would just list std as a Cargo dep and it would just get built</p>



<a name="199095330"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095330" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095330">(May 28 2020 at 22:43)</a>:</h4>
<p>Ah... well, maybe</p>



<a name="199095337"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095337" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095337">(May 28 2020 at 22:43)</a>:</h4>
<p>I mean you could basically do that today</p>



<a name="199095382"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095382" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095382">(May 28 2020 at 22:44)</a>:</h4>
<p>just add a <a href="http://build.rs">build.rs</a> to compiletest that runs cargo +stage1 build -p std</p>



<a name="199095396"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095396" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095396">(May 28 2020 at 22:44)</a>:</h4>
<p>(and in theory it could even do rerun-if-changed on all compiler sources and build the compiler first)</p>



<a name="199095430"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095430" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095430">(May 28 2020 at 22:45)</a>:</h4>
<p>hmm... interesting</p>



<a name="199095463"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095463" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095463">(May 28 2020 at 22:45)</a>:</h4>
<p>or, actually, it need not be a <a href="http://build.rs">build.rs</a> I think</p>



<a name="199095487"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095487" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095487">(May 28 2020 at 22:45)</a>:</h4>
<p>hm now I kinda want to try this out</p>



<a name="199095683"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095683" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095683">(May 28 2020 at 22:48)</a>:</h4>
<p>so it seems like building the compiler without std is hard, but what about building std with, say, a beta compiler instead? that would just mean std can't use features until they hit beta, right?</p>



<a name="199095697"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095697" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095697">(May 28 2020 at 22:48)</a>:</h4>
<p>well std today already must support building with beta</p>



<a name="199095719"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095719" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095719">(May 28 2020 at 22:49)</a>:</h4>
<p>I think the first thing I'd do here is just prototype a no-dep empty crate with <a href="http://build.rs">build.rs</a> that invokes x.py appropriately</p>



<a name="199095728"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095728" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095728">(May 28 2020 at 22:49)</a>:</h4>
<p>and then the thing to do is <code>cargo build -p that-crate</code></p>



<a name="199095763"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095763" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095763">(May 28 2020 at 22:50)</a>:</h4>
<p>(and maybe you have, say, 2-3 of these crates for the common build configs)</p>



<a name="199095812"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095812" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095812">(May 28 2020 at 22:50)</a>:</h4>
<p>do you mean <code>cargo +beta build -p that-crate</code>?</p>



<a name="199095820"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095820" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095820">(May 28 2020 at 22:50)</a>:</h4>
<p>sure</p>



<a name="199095833"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095833" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095833">(May 28 2020 at 22:50)</a>:</h4>
<p>(this crate, being stable-compatible and nearly empty, can use any toolchain though)</p>



<a name="199095874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095874">(May 28 2020 at 22:51)</a>:</h4>
<p>oh yeah</p>



<a name="199095884"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095884" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095884">(May 28 2020 at 22:51)</a>:</h4>
<p>it would to start just run x.py as everyone does today, so it wouldn't get special treatment in terms of downloading compilers and such initially</p>



<a name="199095913"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095913" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095913">(May 28 2020 at 22:51)</a>:</h4>
<p>but what I really meant is more like <code>./x.py +beta</code>... I think you're getting to what I was asking</p>



<a name="199095978"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199095978" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199095978">(May 28 2020 at 22:52)</a>:</h4>
<p>well, yes, the future is that you do cargo +beta build -p that-crate and <em>that</em> compiler is what we use instead of the current approach of downloading one</p>



<a name="199096001"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096001" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096001">(May 28 2020 at 22:52)</a>:</h4>
<p>right</p>



<a name="199096019"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096019" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096019">(May 28 2020 at 22:52)</a>:</h4>
<p>but realistically the one-off download is a pretty small hit I think</p>



<a name="199096045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096045">(May 28 2020 at 22:53)</a>:</h4>
<p>at least for me, it's a common annoyance because it takes a long time on my internet</p>



<a name="199096064"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096064" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096064">(May 28 2020 at 22:53)</a>:</h4>
<p>also, it's weird for newcommers</p>



<a name="199096128"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096128" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096128">(May 28 2020 at 22:54)</a>:</h4>
<p>oh sure</p>



<a name="199096152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096152">(May 28 2020 at 22:54)</a>:</h4>
<p>it would reduce the perceived complexity a lot (I think) if people could just <code>rustup install beta</code> and start building <code>std</code> without anything else and without building a compiler first</p>



<a name="199096162"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096162" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096162">(May 28 2020 at 22:54)</a>:</h4>
<p>well, today that's already true?</p>



<a name="199096166"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096166" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096166">(May 28 2020 at 22:54)</a>:</h4>
<p>well modulo rustup</p>



<a name="199096176"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096176" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096176">(May 28 2020 at 22:54)</a>:</h4>
<p>like you can totally just <code>x.py build --stage 0 src/libstd</code></p>



<a name="199096187"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096187" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096187">(May 28 2020 at 22:55)</a>:</h4>
<p>hmm... that's true</p>



<a name="199096192"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096192" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096192">(May 28 2020 at 22:55)</a>:</h4>
<p>and really even cargo +beta build -p std works IIRC</p>



<a name="199096208"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096208" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096208">(May 28 2020 at 22:55)</a>:</h4>
<p>the hard bit is that using that std is pretty annoying today, but we could make that better without too much trouble</p>



<a name="199096229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096229">(May 28 2020 at 22:55)</a>:</h4>
<p>that seems like it could be a good step</p>



<a name="199096331"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096331" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096331">(May 28 2020 at 22:56)</a>:</h4>
<p>also one other thing that occurs to me is that the default flags don't do what most std devs would want (--stage 0)</p>



<a name="199096351"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096351" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096351">(May 28 2020 at 22:57)</a>:</h4>
<p>but really using cargo would be even better</p>



<a name="199096376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096376">(May 28 2020 at 22:57)</a>:</h4>
<p>yeah I think we could get cargo working</p>



<a name="199096381"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096381" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096381">(May 28 2020 at 22:57)</a>:</h4>
<p>maybe I can spend some cycles on this soon</p>



<a name="199096467"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096467" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096467">(May 28 2020 at 22:58)</a>:</h4>
<p>one other thing: you mentioned that moving std out-of-tree would prevent the compiler from using unstable features</p>



<a name="199096475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096475">(May 28 2020 at 22:58)</a>:</h4>
<p>what would be great is if someone typed up a doc basically saying "here is what I want to do as a std dev"</p>



<a name="199096502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096502">(May 28 2020 at 22:59)</a>:</h4>
<p>but what if we instead made it a subtree and moved std to its own repo?</p>



<a name="199096507"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096507" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096507">(May 28 2020 at 22:59)</a>:</h4>
<p>where it's not so much x.py commands as things like "I want to build std and use it for some crate outside of the compiler tree to test my changes"</p>



<a name="199096525"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096525" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096525">(May 28 2020 at 22:59)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116122">simulacrum</span> <a href="#narrow/stream/182449-t-compiler.2Fhelp/topic/why.20stage.202.3F/near/199096475">said</a>:</p>
<blockquote>
<p>what would be great is if someone typed up a doc basically saying "here is what I want to do as a std dev"</p>
</blockquote>
<p>that's why we're doing the contributor survey :)</p>



<a name="199096536"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096536" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096536">(May 28 2020 at 22:59)</a>:</h4>
<p>I mean you <em>could</em> but I don't think that buys you much if you can get std buildable via cargo direct w/o x.py</p>



<a name="199096629"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096629" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096629">(May 28 2020 at 23:00)</a>:</h4>
<p>I would definitely want more experience with subtrees before doing that</p>



<a name="199096684"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096684" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096684">(May 28 2020 at 23:01)</a>:</h4>
<blockquote>
<p>I mean you could but I don't think that buys you much if you can get std buildable via cargo direct w/o x.py</p>
</blockquote>
<p>Perhaps not _functionaly_ but it buys a lot of simplicity. That is, a random person could just clone the repo and use cargo like they would for any other crate.</p>



<a name="199096715"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096715" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096715">(May 28 2020 at 23:01)</a>:</h4>
<p>(well, mostly)</p>



<a name="199096724"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096724" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096724">(May 28 2020 at 23:01)</a>:</h4>
<p>yes that's somewhat true</p>



<a name="199096731"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096731" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096731">(May 28 2020 at 23:01)</a>:</h4>
<p>I would want to see how far we can get in the compiler tree with that</p>



<a name="199096778"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096778" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096778">(May 28 2020 at 23:02)</a>:</h4>
<p>but the point is, it would be a lot less intimidating and would require a somewhat smaller repo clone</p>



<a name="199096804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096804">(May 28 2020 at 23:02)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116122">simulacrum</span> <a href="#narrow/stream/182449-t-compiler.2Fhelp/topic/why.20stage.202.3F/near/199096731">said</a>:</p>
<blockquote>
<p>I would want to see how far we can get in the compiler tree with that</p>
</blockquote>
<p>with what? subtree?</p>



<a name="199096816"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096816" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096816">(May 28 2020 at 23:02)</a>:</h4>
<p>no, with "just build with cargo"</p>



<a name="199096841"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096841" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096841">(May 28 2020 at 23:03)</a>:</h4>
<p>if we don't require submodules etc then I think there's not <em>that</em> much overhead from having the compiler next to you</p>



<a name="199096873"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096873" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096873">(May 28 2020 at 23:03)</a>:</h4>
<p>sure, the clone is a bit bigger</p>



<a name="199096891"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096891" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096891">(May 28 2020 at 23:03)</a>:</h4>
<p>but Rust developers need large disks anyway because rustc is disk-hungry :)</p>



<a name="199096999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199096999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199096999">(May 28 2020 at 23:04)</a>:</h4>
<p>yeah, just that from skimming the survey comments a lot of people seem to feel intimidated by massive monorepo, and there seems to be a lot of interest to contributing to libstd, so making that feel more "normal" might be a good direction</p>



<a name="199097014"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199097014" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199097014">(May 28 2020 at 23:05)</a>:</h4>
<p>but I get where you're coming from, from a practicality standpoint</p>



<a name="199097058"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199097058" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199097058">(May 28 2020 at 23:05)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116122">simulacrum</span> <a href="#narrow/stream/182449-t-compiler.2Fhelp/topic/why.20stage.202.3F/near/199096891">said</a>:</p>
<blockquote>
<p>but Rust developers need large disks anyway because rustc is disk-hungry :)</p>
</blockquote>
<p>lol, this is a bit of an understatement :P<br>
(also something that comes up a lot in the survey, btw)</p>



<a name="199097060"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199097060" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199097060">(May 28 2020 at 23:05)</a>:</h4>
<p>I think people do get intimidated but I don't know how much of that is "oh no big repo" rather than our current strategies for building etc</p>



<a name="199097116"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199097116" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199097116">(May 28 2020 at 23:06)</a>:</h4>
<p>hmm, I guess that's a fair point</p>



<a name="199097129"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199097129" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199097129">(May 28 2020 at 23:06)</a>:</h4>
<p>like, it might even be a big win to move std and its deps into say std/ and have the top-level be std/ compiler/ tools/ or so</p>



<a name="199097136"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199097136" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199097136">(May 28 2020 at 23:06)</a>:</h4>
<p>and that while a <em>huge</em> diff</p>



<a name="199097139"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199097139" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199097139">(May 28 2020 at 23:06)</a>:</h4>
<p>is trivial</p>



<a name="199097150"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199097150" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199097150">(May 28 2020 at 23:06)</a>:</h4>
<p><span aria-label="+1" class="emoji emoji-1f44d" role="img" title="+1">:+1:</span> I do like that idea</p>



<a name="199097157"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199097157" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199097157">(May 28 2020 at 23:06)</a>:</h4>
<p>(someone proposed this somewhere)</p>



<a name="199097173"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199097173" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199097173">(May 28 2020 at 23:07)</a>:</h4>
<p>do you remember what the reaction to it was?</p>



<a name="199097182"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199097182" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199097182">(May 28 2020 at 23:07)</a>:</h4>
<p>fizzled out more than anything I think</p>



<a name="199097193"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199097193" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199097193">(May 28 2020 at 23:07)</a>:</h4>
<p>I see</p>



<a name="199097205"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199097205" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199097205">(May 28 2020 at 23:07)</a>:</h4>
<p>I imagine a MCP or w/e today would go through pretty quick though</p>



<a name="199097210"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199097210" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199097210">(May 28 2020 at 23:07)</a>:</h4>
<p>especially if we start by just moving std rather than everything</p>



<a name="199097217"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199097217" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199097217">(May 28 2020 at 23:08)</a>:</h4>
<p>e.g. we'd have src/* and std/</p>



<a name="199097263"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199097263" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199097263">(May 28 2020 at 23:08)</a>:</h4>
<p><span aria-label="+1" class="emoji emoji-1f44d" role="img" title="+1">:+1:</span> I was just going to ask</p>



<a name="199097301"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199097301" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199097301">(May 28 2020 at 23:08)</a>:</h4>
<p>perhaps I will open such an MCP a bit later (have to go now)</p>



<a name="199097316"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199097316" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199097316">(May 28 2020 at 23:09)</a>:</h4>
<p>thanks for the discussion <span class="user-mention" data-user-id="116122">@simulacrum</span> ! This has been very enlightening</p>



<a name="199239796"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199239796" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199239796">(May 30 2020 at 05:28)</a>:</h4>
<p>On a related point - why is stage2 the default? I can see how it would sometimes be useful, but it seems to me that 99% of the time stage1 is what you actually want and you should have to pass <code>--stage 2</code> explicitly if you need it for some reason</p>



<a name="199289590"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/why%20stage%202%3F/near/199289590" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/why.20stage.202.3F.html#199289590">(May 31 2020 at 04:23)</a>:</h4>
<p><span class="user-mention" data-user-id="232545">@Joshua Nelson</span> yeah, I expect that after the contributor survey we might want to re-look at some of the defaults of x.py to make common things a bit more straightforward</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>